let invokeUniformApi = require( '../weChat/invokeUniformApi/index' );
let { getClientIp } = require( '../method' );
let { intentM } = require('../db');
let { INTENT_STATE } = require('../bussiness/config');
let { NOT_PAY } = INTENT_STATE;


const genIndent = ( req, res ) => {
  // todo:  判断通知的来源没有问题
  // 获取用户的openId
  let { openid, total_fee = '', anonymous = false } = req.query;

  // 获取终端用户终端 ip
  let spbill_create_ip = getClientIp(req);

  // 调用统一支付接口( 生成订单 )
  invokeUniformApi( total_fee, openid, spbill_create_ip )

  // 将订单数据返回到客户端
    .then( xmlObj => {

      // 加入订单的支付状态
      xmlObj.state = NOT_PAY;

      // 加入该订单涉及到的用户
      xmlObj.openid = openid;

      // 加入用户是否希望该订单匿名
      xmlObj.anonymous = anonymous;

      // 加入该订单的金额
      xmlObj.total_fee = parseInt(total_fee);

      // 订单数据 存入数据库
      intentM.get().insertOne( xmlObj );

      // console.log(JSON.stringify(xmlObj), '我怀疑是前端代码');
      res.json( JSON.stringify(xmlObj) )
    } )
    .catch( err => {
      console.error( '返回订单内容期间出现错误: ' + err )
    } );
};
module.exports = genIndent;